
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author igor_ufrn
 */
@Entity
@Table(name="funcionario")
@PrimaryKeyJoinColumn(name="id_pessoa")
public class Funcionario extends Pessoa {

    public final static int PAPEL_GERENTE = 1;
    public final static int PAPEL_FUNCIONARIO = 2;

    @Temporal( TemporalType.TIMESTAMP )
    @Column(name="data_pagamento")
    private Date dataPagamento;

    @Column(name="id_papel")
    private Integer papel;

    @Column(name="salario")
    private Double salario;

    @Column(name="login")
    private String login;

    @Column(name="senha")
    private String senha;

    public Date getDataPagamento() {
        return dataPagamento;
    }

    public void setDataPagamento(Date dataPagamento) {
        this.dataPagamento = dataPagamento;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public Integer getPapel() {
        return papel;
    }

    public void setPapel(Integer papel) {
        this.papel = papel;
    }

    public Double getSalario() {
        return salario;
    }

    public void setSalario(Double salario) {
        this.salario = salario;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Collection<String> validator() {

        Collection<String> erros = new ArrayList<String>();

        if( login==null || login.equals(""))
            erros.add("Usuário: Campo Obrigatório não informado.");

        if( senha==null || senha.equals(""))
            erros.add("Senha: Campo Obrigatório não informado.");

        if( papel == 0)
            erros.add("Papel: Campo Obrigatório não informado.");

        FuncionarioDao dao = new FuncionarioDao();

        Collection<Funcionario> funcionarios = dao.findAll();

        for(Funcionario f : funcionarios) {
            if(f.getLogin().equals(getLogin())) {
                erros.add("O login já existe!");
                break;
            }
        }
        return erros;
    }

    

}